#pragma once

// STL's
#include <memory>

// Qt's
#include <QWidget>

#include "gant_global_define.h"

class GAntFramelessWidget;
class LoadingButton;
class LoadingButton2;
class GANT_EXPORT GAntFactroy
{
public:
    [[nodiscard]] static std::unique_ptr<GAntFramelessWidget> createGAntFramelessWidget(QWidget* parent = nullptr);
    [[nodiscard]] static std::unique_ptr<LoadingButton> createLoadingButton(QWidget* parent = nullptr);
    [[nodiscard]] static std::unique_ptr<LoadingButton> createLoadingButton(const QString& text, QWidget* parent = nullptr);
    
    [[nodiscard]] static std::unique_ptr<LoadingButton2> createLoadingButton2(QWidget* parent = nullptr);
};